package ablaufsichtstelle;

import java.awt.Color;
import java.awt.Component;
import java.util.Vector;

import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;

import steuerung.Ablaufsteuerung;
import zug.Waggon;

/**
 * 
 * @author Nilientes
 * 
 */
public class ZugListe extends JTable {

	private int markierterWagen = 0;

	Ablaufsteuerung als;

	/**
	 * 
	 * @param als
	 */
	public ZugListe(Ablaufsteuerung als) {
		// super(new Color(200, 200, 255));

		this.als = als;

		this.setBackground(new Color(196, 196, 196));

		/*
		 * this.setRowSelectionAllowed(false);
		 * this.setColumnSelectionAllowed(false);
		 * this.setCellSelectionEnabled(false);
		 */

		// this.setSelectionModel(newModel)
		refreshData(als);
		// this.setSelectionBackground(Color.RED);

		// this.setRowSelectionInterval(markierterWagen, markierterWagen);
	}

	/**
	 * 
	 * @param als
	 */
	public void refreshData(Ablaufsteuerung als)
	{
		Vector<String> titel = new Vector<String>();
		titel.add("Nr.");
		titel.add("Rg");
		titel.add("Typ");
		titel.add("Kennung");
		titel.add("Status");

		Vector data = als.zug.getTableData();
		DefaultTableModel dtm = new DefaultTableModel();
		dtm.setDataVector(data, titel);

		this.setModel(dtm);
	}

	/**
	 * 
	 */
	/*
	 * public void naechsterWagen() { markierterWagen++; if (markierterWagen <
	 * this.getRowCount()) try { this.setRowSelectionInterval(markierterWagen,
	 * markierterWagen);
	 *  } catch (IllegalArgumentException e) {
	 *  } }
	 */

	@Override
	public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
	{
		Component c = super.prepareRenderer(renderer, row, column);
		if (als.zug.waggons.size() > 0) {
			if (als.zug.waggons.get(row).getOrt() == Waggon.VOR_BERG) c.setBackground(new Color(196, 196, 196));
			else if (als.zug.waggons.get(row).getOrt() == Waggon.ABLAUF) c.setBackground(new Color(255, 255, 0));
			else if (als.zug.waggons.get(row).getOrt() == Waggon.RICHTUNGR) c.setBackground(new Color(0, 255, 0));
			else if (als.zug.waggons.get(row).getOrt() == Waggon.RICHTUNGF) c.setBackground(new Color(255, 0, 0));
			else System.out.println("Illegaler Ort");
		}
		return c;
	}
}
